package com.qf.fmall.utils;

import io.jsonwebtoken.*;

import java.util.Date;

public class JWTUtils {
    public static String createToken(String subject, String tokenid, String secretkey) {
        /*帮助我们构建一个对象*/
        JwtBuilder builder = Jwts.builder();
        /*主题就是token中携带的数据*/
        String token = builder.setSubject(subject)  //设置主体
                //密钥开始时间
                .setIssuedAt(new Date()) //设置token创建时间
                //过期时间 十分钟后过期  设置token过期时间
                .setExpiration(new Date(System.currentTimeMillis() + 100 * 60 * 60 * 24))
                // 相当于标识
                .setId(tokenid)
                // 生成token的加密算法
                .signWith(SignatureAlgorithm.HS256, secretkey)
                .compact();
        System.out.println(token);
        return token;
    }

    public static Boolean parseToken(String token, String secretKey) {
        JwtParser parser = Jwts.parser();
        boolean result = true;
        try {
            Jwt jwt = parser.setSigningKey(secretKey)
                    .parse(token);
        } catch (Exception e) {
            e.printStackTrace();
            result = false;
        }
        return result;
    }

}
